package com.fxkj.cloud.drms.domain.product;

import com.fxkj.cloud.dbs.common.model.product.RelProductAttributeInfo;
import com.google.common.util.concurrent.ListenableFuture;

import java.util.Set;
import java.util.UUID;

/**
 * <p>description: </p>
 * @author ww
 * @date 2025/4/17 10:04
 */
public interface ProductRepository {
    /**
     * 获取产品告警属性名称
     * @param productId
     * @param attributeCode
     * @return
     */
    RelProductAttributeInfo getAlarmAttributeName(UUID productId, String attributeCode);

    /**
     * 获取产品能耗统计
     * @param productId
     * @param organizationId
     * @return
     */
    ListenableFuture<ProductEnergyStatistics> getProductEnergyStatistics(Set<UUID> productId, UUID organizationId);

    /**
     * 通过设备类型id获取产品id集合
     * @param productModelId
     * @return
     */
    Set<UUID> getProductIdsByModelId(UUID productModelId);
}
